Now that I've streamlined the MCMC process, I am going to submit multiple chains simultaneously. This notebook will make multiple, similar config files, for broad comparison.
This may be rolled into pearce as a helper function, I haven't decided.
For rmin 0, 0.5, 1.0:
For no ab, HSAB and CorrAB emu:
Vpeak sham
Mpeak sham
HOD
HSAB HOD
In [4]:
import yaml
import copy
from os import path
import numpy as np
In [6]:
orig_cfg_fname = '/home/users/swmclau2//Git/pearce/bin/mcmc/nh_gg_sham_hsab_mcmc_config.yaml'
with open(orig_cfg_fname, 'r') as yamlfile:
orig_cfg = yaml.load(yamlfile)
In [7]:
orig_cfg
Out[7]:
In [8]:
#this will enable easier string formatting
sbatch_template = """#!/bin/bash
#SBATCH --job-name={jobname}
#SBATCH --time=12:00:00
#SBATCH -p kipac
#SBATCH -o /home/users/swmclau2/Git/pearce/bin/mcmc/config/{jobname}.out
#SBATCH --ntasks=16
###SBATCH --exclusive
module load python/2.7.13
module load py-scipystack
module load hdf5/1.10.0p1
module load py-numpy
python /home/users/swmclau2/Git/pearce/pearce/inference/initialize_mcmc.py {jobname}.yaml
python /home/users/swmclau2/Git/pearce/pearce/inference/run_mcmc.py {jobname}.yaml
"""
In [9]:
#emu fnames
#emu_fnames = [#'/nfs/slac/g/ki/ki18/des/swmclau2/xi_gg_zheng07_v4/PearceXiggCosmo.hdf5',\
# '/nfs/slac/g/ki/ki18/des/swmclau2/xi_gg_hsabzheng07_v2/PearceXiggCosmoCorrAB.hdf5']
emu_fnames = [['/scratch/users/swmclau2/wp_zheng07/PearceWpCosmo.hdf5', '/scratch/users/swmclau2/ds_zheng07/PearceDsCosmo.hdf5']]
#emu_cov_fnames = [#'/afs/slac.stanford.edu/u/ki/swmclau2/Git/pearce/bin/covmat/xi_gg_nh_emu_cov_v4.npy',
# '/afs/slac.stanford.edu/u/ki/swmclau2/Git/pearce/bin/covmat/xi_gg_nh_emu_hsab_cov_v4.npy']
emu_names = ['HOD']
In [10]:
np.save('dummy_emu_covmat.npy', np.zeros((18,18)))
In [11]:
meas_cov_fname = '/home/users/swmclau2/Git/pearce/bin/covmat/wp_ds_full_covmat.npy'
# TODO replace with actual ones onace test boxes are done
emu_cov_fnames = [['/home/users/swmclau2/Git/pearce/notebooks/dummy_emu_covmat.npy' for i in xrange(2)]]
In [16]:
orig_cfg_fname = '/home/users/swmclau2/Git/pearce/bin/mcmc/nh_gg_mcmc_config.yaml'
with open(orig_cfg_fname, 'r') as yamlfile:
orig_cfg = yaml.load(yamlfile)
In [19]:
tmp_cfg = copy.deepcopy(orig_cfg)
directory = "/home/users/swmclau2/Git/pearce/bin/mcmc/config/"
output_dir = "/home/users/swmclau2/scratch/PearceMCMC/"
jobname_template = "HOD_wp_ds_rmin_{rmin}_{emu_name}"
for rmin in [None, 0.5, 1.0, 2.0]:
for emu_fname, emu_name, emu_cov in zip(emu_fnames, emu_names, emu_cov_fnames):
tmp_cfg['chain']['nwalkers'] = 500
if rmin is not None:
tmp_cfg['emu']['fixed_params'] = {'z': 0.0, 'rmin':rmin}
tmp_cfg['emu']['training_file'] = emu_fname
tmp_cfg['emu']['emu_type'] = ['NashvilleHot' for i in xrange(len(emu_fname))]
tmp_cfg['emu']['emu_cov_fname'] = emu_cov_fnames
tmp_cfg['data']['cov']['meas_cov_fname'] = meas_cov_fname
jobname = jobname_template.format(rmin=rmin, emu_name=emu_name)
tmp_cfg['fname'] = path.join(output_dir, jobname+'.hdf5')
tmp_cfg['sim']= {'gal_type': 'HOD',
'hod_name': 'zheng07',
'hod_params': {'alpha': 1.083,
'logM0': 13.2,
'logM1': 14.2,
'sigma_logM': 0.2},
'nd': '5e-4',
'scale_factor': 1.0,
'sim_hps': {'boxno': 1,
'downsample_factor': '1e-2',
'particles': True,
'realization': 0,
'system': 'sherlock'},
'simname': 'testbox'}
tmp_cfg['data']['sim']['sim_hps']['system'] = 'sherlock'
tmp_cfg['chain']['nsteps'] = 20000
with open(path.join(directory, jobname +'.yaml'), 'w') as f:
yaml.dump(tmp_cfg, f)
with open(path.join(directory, jobname + '.sbatch'), 'w') as f:
f.write(sbatch_template.format(jobname=jobname))
In [ ]: